﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TecBaseObjects.Base;

namespace TecBaseObjects.Models.BusinessCases {

    public class BusinessCasesShortListModel : MyBaseModel {

        #region Members

        private int projectID;
        private string createdBy;
        private DateTime createdOn;
        private string customerSource;
        private byte customerGroup;
        private string fileUser;
        private DateTime finishDate;
        private DateTime firstContactDate;
        private DateTime implementationDate;
        private bool intern;
        private string invoiceRecipient;
        private string lastChangedBy;
        private DateTime lastChangedOn;
        private DateTime orderDate;
        private string projectAddress;
        private int projectStatus;
        private string projectStatusText;
        private string purchaser;
        private double erloesSumNetto;
        private double costSummary;
        private double resultDB;
        private double timeSummary;
        private string shortName;

        #endregion

        #region Constructor

        public BusinessCasesShortListModel() {
        }

        #endregion

        #region Properties

        #region BusinessCase

        public int ProjectID {
            get { return this.projectID; }
            set { this.projectID = value; }
        }

        public string CreatedBy {
            get { return this.createdBy; }
            set {
                if (this.createdBy == value) {
                    return;
                }
                this.createdBy = value;
                OnPropertyChanged(() => CreatedBy);
            }
        }

        public DateTime CreatedOn {
            get { return this.createdOn; }
            set {
                if (this.createdOn == value) {
                    return;
                }
                this.createdOn = value;
                OnPropertyChanged(() => CreatedOn);
            }
        }

        public byte CustomerGroup {
            get { return this.customerGroup; }
            set {
                if (this.customerGroup == value) {
                    return;
                }
                this.customerGroup = value;
                OnPropertyChanged(() => CustomerGroup);
            }
        }

        public string CustomerSource {
            get { return this.customerSource; }
            set {
                if (this.customerSource == value) {
                    return;
                }
                this.customerSource = value;
                OnPropertyChanged(() => CustomerSource);
            }
        }

        public string FileUser {
            get { return this.fileUser; }
            set {
                if (this.fileUser == value) {
                    return;
                }
                this.fileUser = value;
                OnPropertyChanged(() => FileUser);
            }
        }

        public DateTime FinishDate {
            get { return this.finishDate; }
            set {
                if (this.finishDate == value) {
                    return;
                }
                this.finishDate = value;
                OnPropertyChanged(() => FinishDate);
            }
        }

        public DateTime FirstContactDate {
            get { return this.firstContactDate; }
            set {
                if (this.firstContactDate == value) {
                    return;
                }
                this.firstContactDate = value;
                OnPropertyChanged(() => FirstContactDate);
            }
        }

        public DateTime ImplementationDate {
            get { return this.implementationDate; }
            set {
                if (this.implementationDate == value) {
                    return;
                }
                this.implementationDate = value;
                OnPropertyChanged(() => ImplementationDate);
            }
        }

        public bool Intern {
            get { return this.intern; }
            set {
                if (this.intern == value) {
                    return;
                }
                this.intern = value;
                OnPropertyChanged(() => Intern);
            }
        }

        public string InvoiceRecipient {
            get { return this.invoiceRecipient; }
            set {
                if (this.invoiceRecipient == value) {
                    return;
                }
                this.invoiceRecipient = value;
                OnPropertyChanged(() => InvoiceRecipient);
            }
        }

        public string LastChangedBy {
            get { return this.lastChangedBy; }
            set {
                if (this.lastChangedBy == value) {
                    return;
                }
                this.lastChangedBy = value;
                OnPropertyChanged(() => LastChangedBy);
            }
        }

        public DateTime LastChangedOn {
            get { return this.lastChangedOn; }
            set {
                if (this.lastChangedOn == value) {
                    return;
                }
                this.lastChangedOn = value;
                OnPropertyChanged(() => LastChangedOn);
            }
        }

        public DateTime OrderDate {
            get { return this.orderDate; }
            set {
                if (this.orderDate == value) {
                    return;
                }
                this.orderDate = value;
                OnPropertyChanged(() => OrderDate);
            }
        }

        public string ProjectAddress {
            get { return this.projectAddress; }
            set {
                if (this.projectAddress == value) {
                    return;
                }
                this.projectAddress = value;
                OnPropertyChanged(() => ProjectAddress);
            }
        }

        public int ProjectStatus {
            get { return this.projectStatus; }
            set {
                if (this.projectStatus == value) {
                    return;
                }
                this.projectStatus = value;
                OnPropertyChanged(() => ProjectStatus);
            }
        }

        public string ProjectStatusText {
            get { return this.projectStatusText; }
            set {
                if (this.projectStatusText == value) {
                    return;
                }
                this.projectStatusText = value;
                OnPropertyChanged(() => ProjectStatusText);
            }
        }

        public string Purchaser {
            get { return this.purchaser; }
            set {
                if (this.purchaser == value) {
                    return;
                }
                this.purchaser = value;
                OnPropertyChanged(() => Purchaser);
            }
        }

        public string ShortName {
            get { return this.shortName; }
            set {
                if (this.shortName == value) {
                    return;
                }
                this.shortName = value;
                OnPropertyChanged(() => ShortName);
            }
        }

        #endregion

        #region Values

        public double CostSummary {
            get { return this.costSummary; }
            set {
                if (this.costSummary == value) {
                    return;
                }
                this.costSummary = value;
                OnPropertyChanged(() => CostSummary);
            }
        }

        public double ErloesSumNetto {
            get { return this.erloesSumNetto; }
            set {
                if (this.erloesSumNetto == value) {
                    return;
                }
                this.erloesSumNetto = value;
                OnPropertyChanged(() => ErloesSumNetto);
            }
        }

        public double ResultDB {
            get { return this.resultDB; }
            set {
                if (this.resultDB == value) {
                    return;
                }
                this.resultDB = value;
                OnPropertyChanged(() => ResultDB);
            }
        }

        public double TimeSummary {
            get { return this.timeSummary; }
            set {
                if (this.timeSummary == value) {
                    return;
                }
                this.timeSummary = value;
                OnPropertyChanged(() => TimeSummary);
            }
        }

        #endregion
        
        #endregion

    }
}
